package com.cet.designpatterns.flyweight;

import java.util.HashMap;
import java.util.Map;

/**
 * @program: algorithm
 * @description: 网站工厂类
 * @author: 陈恩涛
 * @create: 2021-09-14 14:23
 **/
public class WebsiteFactory {

    /**
     * 集合，充当池的作用
     */
    private Map<String, Website> pool = new HashMap<>();

    /**
     * 根据网站的类型，返回一个网站，如果没有就创建一个网站，并放入池中
     */
    public Website getWebsiteByCategory(String type) {
        if (!pool.containsKey(type)) {
            pool.put(type,new ConcreteWebsite(type));
        }
        return pool.get(type);
    }

    /**
     * 获取网站分类的总数，即池中有多少个网站类型
     */

    public int getWebsiteCount() {
        return pool.size();
    }

}
